/** 
 *	项目独有的 初始化上传空间, 图片显示, 删除等功能方法
 **/
var fileoperator = {};
/**
 * 初始化上传图片按钮
 * id-按钮控件的id, 只所以加上这个参数, 是因为原来的项目中 一个页面有多个上传按钮存在的缘故
 * btnValue-上传按钮的显示文字
 * returnInputId-返回的图片id放置的input控件id
 */
fileoperator.initUploadfile = function(btnId,fileUploadReturnValueContainter){
	// 如果上传按钮div不存在的话则不执行后续的初始化按钮事件
	if(!$("#"+btnId)){
		return;
	}
	$("#"+btnId).uploadFile({
		url:server.contextPath + '/filegags/singleUpload',
		fileName:"file",
		dragDrop:true,
		dragDropStr:'<span><b>拖拽文件至此处</b></span>',
        maxFileCount:10,       //上传文件数量
        maxFileSize:10*1024*1024, //大小限制10M
        sizeErrorStr:"上传文件不能大于", 
		onSuccess: function(files,data,xhr,pd){
			if(data.result){
				var fileUpload1ReturnValue = $('#'+fileUploadReturnValueContainter).val();
				if(verify.isNull(fileUpload1ReturnValue)){
					$('#'+fileUploadReturnValueContainter).val(data.message);
				}else{
					$('#'+fileUploadReturnValueContainter).val(fileUpload1ReturnValue+'|'+data.message)
				}
			}else{
				alert(data.message);
			}
		}
	});
}

/**
 * 初始化已经存在的业务图片
 * containerId - 装显示图片的容器id
 * businessId - 请求影像文件的业务id
 * businessValuesContainerId - 装 文件名.id|文件名.id|文件名.id|文件名.id   格式拼接起来的实际文件id
 * htmlPageType - 页面的状态, 只有在new、edit值时才会在图片上添加上删除事件, 否则只有查看事件
 */ 
fileoperator.initialBusinessImage = function(containerId,businessId, businessValuesContainerId,htmlPageType){
	if(verify.isNull(containerId) || verify.isNull(businessId)){
		return null;
	}
	$.ajax({
		url : server.contextPath + '/filegags/getFileList',
		type : 'post',
		data : {'businessId':businessId},
		dataType : 'json',
		beforeSend : function() {
		},
		success : function(data) {
			if (data.result) {
				var lihtml = '<ul class="ulImageShow">';
				var fileUploadReturnValue = '';
				$.each(data.message.list,function(index,item){
					lihtml += '<li><img src="'+item.fileName+'" onmousedown="fileoperator.operateImg(event,this,\'' + businessValuesContainerId + '\',\'' + htmlPageType + '\')"/></li>';
					if(verify.isNull(fileUploadReturnValue)){
						fileUploadReturnValue += item.remark;
					}else{
						fileUploadReturnValue += '|' + item.remark;
					}
				});
				lihtml += '</ul>';
				$('#' + containerId).html(lihtml);
				$('#' + businessValuesContainerId).val(fileUploadReturnValue);
			} else {
				alert(data.message);
			}
		},
		error : function() {
			alert('操作发生错误, 请刷新页面重新尝试或者联系管理员进行解决.');
		}
	});
}

/**
 * 图片点击事件, 左键查看, 右键删除
 * event - 系统默认的事件
 * obj  - 被点击的图片对象
 * businessValuesContainerId - 盛放 业务值对应的文件id列表容器id
 * htmlPageType - 页面的状态, 只有在new、edit值时才会在图片上添加上删除事件, 否则只有查看事件
 */
fileoperator.operateImg = function(event,obj,businessValuesContainerId,htmlPageType){
	// 右键
	if(event.button=='2' && (htmlPageType == 'new' || htmlPageType == 'edit')){  
		fileoperator.delImg(obj,businessValuesContainerId);
	}else if(event.button=='0'){
		//左键
		fileoperator.openImgModalBox($(obj).attr('src')); 
	}  
}

/**
 * 大图显示单个图片弹出框, 宽高默认为100%
 * imgUrl 图片绝对路径
 */
fileoperator.openImgModalBox = function(imgUrl){
	// body内容
	dialog = bootbox.dialog({
	    title : '图片显示',
	    message : '<img src="'+imgUrl+'" style="width:100%;"/>',
	    className:'',
	    boxCss:{'width':'100%','height':'100%'}
	});
}

/**
 * 删除单张图片方法
 * obj - 图片对象
 * businessValuesContainerId - 盛放 业务值对应的文件id列表容器id
 **/
fileoperator.delImg = function(obj,businessValuesContainerId){
	var delflag = window.confirm('确实要删除该张图片么,此操作不可恢复, 点 “是” 继续删除, 点 “否” 取消。 ');
	if(!delflag){
		return;
	}
	//将对应的图片url从隐藏的input中删除
	// 1- 获得 业务值对应的文件id列表容器id中的值
	var fileUploadReturnValue = $('#' + businessValuesContainerId).val();
	if(verify.isNull(fileUploadReturnValue)){
		return;
	}
	// 2- 取得图片名 
	var preurl = $(obj).attr('src');	//图片绝对url路径
	var imgname = preurl.substring(preurl.lastIndexOf('/')+1); // 图片文件名
	// 3-从 隐藏input中 将imgname 删除掉~~
	var fileUploadReturnValueArray = fileUploadReturnValue.split('|');
	var newFileUploadReturnValue = '';
	for(var i=0;i<fileUploadReturnValueArray.length;i++){
		if(imgname == fileUploadReturnValueArray[i]){
			continue;
		}else{
			if(verify.isNull(newFileUploadReturnValue)){
				newFileUploadReturnValue = fileUploadReturnValueArray[i];
			}else{
				newFileUploadReturnValue += '|' + fileUploadReturnValueArray[i];
			}
		}
	}
	// 3-新值赋给隐藏input
	$('#'+businessValuesContainerId).val(newFileUploadReturnValue);
	// 4-将该图片元素去除掉
	$(obj).remove();
}
 
